package evi.com.evi.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @time 2016年8月22日上午9:33:08
 * @author neil.chen
 *
 * @TODO 此处作为正则的收集处理：收集中（大家有就加进来）
 */
public class RegexUtils extends Utils {

	public static final String RX_Mobile = "^1((3\\d)|(4[57])|(5[012356789])|(7\\d)|(8\\d))\\d{8}$"; // 匹配11位手机号
	public static final String RX_Fixedline = "^(010|02\\d|0[3-9]\\d{2})?[-]\\d{7,8}$"; // 匹配固定电话

	public static final String RX_PWD = "^(?![^a-zA-Z]+$)(?!\\D+$).{6,20}$"; // 判断密码（6-20位 数字+字母）
	public static final String RX_Money = "^[+]?(([1-9]\\d*[.]?))(\\d{0,2})?$"; // 判断金钱格式

	public static final String RX_ChineseChar = "\\u4e00-\\u9fa5]+"; // 判断中文
	public static final String RX_Special = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~！@#￥%……&*（）——+|{}【 】‘；：”“’。，、？]"; // 判断是否包含特殊字符

	/**
	 * @return 常见正则匹配：
	 */
	public static boolean isRegex(String str, String RX) {
		return str.matches(RX);
	}
	
	/**
	 * @param regex		 待匹配字符串
	/**@param srcString	 待转换字符串
	/**@return
	 *
	 * TODO
	 */
	public static String replaceAllUnicode2Utf8(String regex,String srcString) {
		Matcher matcher = Pattern.compile(regex).matcher(srcString);//替换匹配器器
		
		StringBuffer sb = new StringBuffer();	//替换环境
		while(matcher.find()) { 
			 String temp =matcher.group();	//待替换串
		     matcher.appendReplacement(sb,replaceUnicode2Utf8(temp));//核心：替换串
		} 
		matcher.appendTail(sb);
		
		return sb.toString();
	}

	/**
	 * TODO	unicode 字符串 转换为 字符串	(\u7744: 中文)
	 */
	public static String replaceUnicode2Utf8(String unicode) {
		return (char)Integer.parseInt(unicode.substring(unicode.length()-4), 16)+"";
	}
}
